Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Proposed Workflow ("Editable Mode")
I propose a formal "Editable" workflow integrated into Manifest Mode.
This is an ongoing draft of my initial experimentations and is not (yet) a functional proposal.
1. Setup
I am working on
MyProjdefined byvcpkg.json.2. Materialization
I signal to vcpkg that
zlibshould be editable (via a command, environment variable, or configuration).Expected outcome:
zlibbased on the current manifest, fetches the source (preferably viagit cloneto preserve history, or source extraction), and places it in a local user-writable directory (e.g.,./vcpkg_edits/zlib).zlibport, effectively creating a temporary local overlay.3. Iteration
./vcpkg_edits/zlib.MyProj(e.g.,cmake --build .).Crucial Change (The "Dirty Build"):
MyProj) that a dependency has changed, triggering a non-standard incremental build/re-link of the consumer project against the updated binary.4. Completion
I validate my changes. I can then commit the changes (if git history was preserved or added) or generate a patch. I disable the editable state, and vcpkg returns to strict manifest compliance.
The Golden Rule: "Whatever happens in editable mode, stays in editable mode." No impact on CI, registry, shared code. Local only.